//package springcloud.config;

//import org.springframework.cloud.gateway.route.RouteLocator;
//import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///**
// * @author 韩顺平
// * @version 1.0
// * GateWayRoutesConfig: 配置类-----配置路由
// */
//@Configuration
//public class GateWayRoutesConfig {
//
//    //配置注入路由
//
//    /**
//     * 在理解通过配置类注入/配置 路由，可以对照前面的application.yml来对比理解
//     * cloud:
//     *     gateway:
//     *       routes: #配置路由,可以配置多个路由 List<RouteDefinition> routes
//     *         - id: member_route01 #路由的id, 程序员自己配置,要求唯一
//     *           #gateway 最终访问的url 是 url=uri+Path
//     *           #匹配后提供服务的路由地址: 也可以是外网 http://www.baidu.com
//     *           #比如： 客户端/浏览器请求 url http://localhost:20000/member/query/1
//     *           #如果根据Path匹配成功 最终访问的url/转发url 就是 url=http://localhost:10000/member/query/1
//     *           #如果匹配失败, 则有gateway返回404信息
//     *           #疑问: 这里老师配置的 uri 是固定,在当前这种情况其实可以没有有Eureka Server,后面老师会使用灵活方式
//     *           #     配置，就会使用到Eureka Server
//     *           uri: http://localhost:10000
//     *           predicates: #断言,可以有多种形式
//     *             - Path=/member/get/**
//     */
//    @Bean
//    public RouteLocator myRouteLocator04(RouteLocatorBuilder routeLocatorBuilder) {
//
//        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
//
//        //方法写完
//        //老师梳理
//        //1. 下面的方法我们分别指定了id , uri 和 path
//        //2. Function<PredicateSpec, Route.AsyncBuilder> fn
//        //(1) 是一个函数式接口
//        //(2) 接收的类型是 PredicateSpec ,返回的类型是 Route.AsyncBuilder
//        //(3) r -> r.path("/member/query/**")
//        //                .uri("http://localhost:10000") 就是lambda表达式
//        //(4) 一会老师还要用代码进行说明-先使用-再理解
//        //3. 小伙伴们可以理解这是一个规定写法
//
//        return routes.route("member_route04", r -> r.path("/member/query/**")
//                .uri("http://localhost:10000"))
//                .build();
//    }
//
//    @Bean
//    public RouteLocator myRouteLocator05(RouteLocatorBuilder routeLocatorBuilder) {
//
//        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
//
//        return routes.route("member_route05", r -> r.path("/member/save")
//                .uri("http://localhost:10000"))
//                .build();
//
//    }
//}
